package com.example.navigation.data

import com.example.navigation.R

// 单例化数据源：object 将 DataSource 声明为全局唯一实例，避免重复创建相同数据
// 共享常量数据：存储应用中不可变的配置数据（如口味列表、数量选项），所有调用处访问同一份数据
// 直接通过类名访问：无需实例化，直接使用 DataSource.flavors 获取数据+
// DataSource.flavors.forEach {
//     flavorResId -> val flavorName = getString(flavorResId) // 然后可以用flavorName来显示
// }
// 在 Activity/Fragment 中获取所有口味的文本列表
// val flavorNames = DataSource.flavors.map { getString(it) }
// 输出：["香草", "巧克力", "红丝绒", "咸焦糖", "咖啡"]
object DataSource {
    val flavors = listOf(
        R.string.vanilla,
        R.string.chocolate,
        R.string.red_velvet,
        R.string.salted_caramel,
        R.string.coffee
    )

    // 数量选项
    // DataSource.quantityOptions.forEach {
    //     (textResId, quantity) -> val optionText = getString(textResId) // 然后显示optionText和quantity
    // }
    // 单选按钮组：
    //
    // DataSource.quantityOptions.forEachIndexed { index, (resId, qty) ->
    //     val radioButton = RadioButton(this).apply {
    //         text = getString(resId)
    //         tag = qty // 存储实际数值
    //     }
    //     radioGroup.addView(radioButton)
    // }
    // 订单逻辑处理：
    // 用户选择后，通过 radioGroup.checkedRadioButtonId 获取选中的按钮，再解析其 tag 中的数值


    val quantityOptions = listOf(
        Pair(R.string.one_cupcake, second = 1),
        Pair(R.string.six_cupcakes, 6),
        Pair(R.string.twelve_cupcakes, 12)
    )
}